package com.ruoyi.business.constant;

/**
 * 正则表达式常量类
 */
public class Regex {
    // 名称正则；
    public static final String NAME = "^[\\u4e00-\\u9fa5A-Za-z][\\u4e00-\\u9fa5A-Za-z\\w]{1,19}$";
    // 账号正则；
    public static final String ACCOUNT = "^[a-zA-Z]\\w{3,19}$";
    // 密码正则；
    public static final String PASSWORD = "^[a-zA-Z]\\w{5,19}$";
    // 特殊符号正则；
    public static final String SPECIAL = "^$|^[^'$]+$";
    // 手机号码正则；
    public static final String PHONE = "^(1[3456789]\\d{9})$";
    // 固定电话正则；
    public static final String TELEPHONE = "^((\\d{3,4}\\-)|)\\d{7,8}(|([-\\u8f6c]{1}\\d{1,5}))$";
    // 邮箱地址正则；
    public static final String MAIL = "^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+$";
    // 中文正则；
    public static final String CHINESE = "^[\u4e00-\u9fa5]$";
    // 链接地址正则；
    public static final String URL = "^((http|ftp|https)://)(([a-zA-Z0-9._-]+.[a-zA-Z]{2,6})|([0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}))(:[0-9]{1,4})*(/[a-zA-Z0-9&%_./-~-]*)?$";
    // 验证码正则；
    public static final String CODE = "^[a-zA-Z0-9]{5}$";
    // MAC地址正则；
    public static final String MAC = "^[A-Z0-9]{12}$";
    // 2003Doc；
    public static final String DOC = "^.+\\.(?i)(doc)$";
    // 通用Doc；
    public static final String WORD = "^.+\\.(?i)((doc)|(docx))$";
    // 2003Excel；
    public static final String XLS = "^.+\\.(?i)(xls)$";
    // 通用Excel；
    public static final String EXCEL = "^.+\\.(?i)((xls)|(xlsx))$";
    // PDF文件
    public static final String PDF = "^.+(.PDF|.pdf)$";
    // 图片正则；
    public static final String IMAGE = "^.+(.JPEG|.jpeg|.JPG|.jpg|.GIF|.gif|.BMP|.bmp|.PNG|.png|.JFIF|.jfif|.ICO|.ico|.PCX|.pcx|.TIF|.tif|.RAW|.raw|.TGA|.tga)$";
    // 视频正则；
    public static final String VIDEO = "^.+(.MP4|.mp4)$";
    // 安卓应用文件；
    public static final String ANDROID_APPLICATION = "^.+(.APK|.apk|.WGT|.wgt)$";
    // AI智能秤学习文件；
    public static final String WEIGHER_DATA = "^.+(.CNN|.cnn|.TXT|.txt)$";
    // 压缩文件；
    public static final String ZIP = "^.+(.ZIP|.zip|.RAR|.rar)$";
    // 数字正则；
    public static final String NUMBER = "^\\d+$";
    // 浮点类型正则；
    public static final String FLOAT = "^-?(?:\\d+|\\d{1,3}(?:,\\d{3})+)(?:\\.\\d+)?$";
    // 日期正则；
    public static final String DATE = "^\\d{4}[\\/\\-.]\\d{1,2}[\\/\\-.]\\d{1,2}$";
    // 身份证正则；
    public static final String IDENTITY = "(^[1-9]\\d{5}(18|19|([23]\\d))\\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\d{3}[0-9Xx]$)|(^[1-9]\\d{5}\\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\d{3}$)";
}
